﻿using System;

using ZQNB.Common.NHExtensions;
using ZQNB.Common.Encrypt;

namespace ZQNB.Entity.Accounts
{
    public class Account : NbEntity<Account>
    {
        public Account()
        {
            this.CreateDate = new DateTime(2000, 1, 1);

            PasswordFormat = PasswordFormat.Hashed;
            PasswordSalt = "abcd";
        }

        /// <summary>
        /// 支持作为凭证登录的三种方式（都是全局唯一）
        /// LoginName
        /// </summary>
        public virtual string LoginName { get; set; }

        /// <summary>
        /// 支持作为凭证登录的三种方式（都是全局唯一）
        /// Email
        /// </summary>
        public virtual string Email { get; set; }

        /// <summary>
        /// 支持作为凭证登录的三种方式（都是全局唯一）
        /// CustomNo,如工号等
        /// </summary>
        public virtual string CustomNo { get; set; }

        public virtual string Password { get; set; }
        public virtual string PasswordSalt { get; set; }
        public virtual PasswordFormat PasswordFormat { get; set; }
        public virtual bool IsLocked { get; set; }
        public virtual DateTime CreateDate { get; set; }

        /// <summary>
        /// 用户来源，表示是否外部导入等 //外部，内部，某厂商等
        /// </summary>
        public virtual string FromSource { get; set; }

        /// <summary>
        /// 外部导入的账号Pk，可以存入此段，可空
        /// </summary>
        public virtual string AccountPk { get; set; }

        /// <summary>
        /// 外部导入用户的组织标识，可空
        /// </summary>
        public virtual string OrgPk { get; set; }

        /// <summary>
        /// 外部导入用户的标识，可空
        /// </summary>
        public virtual string UserPk { get; set; }
    }
}
